Skip to content

Hibernate 7 Support#15530

Closed
jdaugherty wants to merge 1059 commits into8.0.xfrom
8.0.x-hibernate7
Closed

Hibernate 7 Support#15530
jdaugherty wants to merge 1059 commits into8.0.xfrom
8.0.x-hibernate7

Conversation

@jdaugherty
Copy link
Copy Markdown
Contributor

@jdaugherty jdaugherty commented Mar 23, 2026

I accidentally pushed to 8.0.x-hibernate7 instead of 8.0.x-hibernate7-bom. This caused #15510 to close as a result.

From that PR's todos:

Current Progress:

Fixing bad merges of the gradle plugin extraction
Fixing license headers
Fixing styling
Attempted merge of code styles
Running CI against hibernate 7 branch
Splitting boms into a hibernate5 & 7 bom (probably needs more work)

TODO:

docs need further updates
several functional tests were added for hibernate 5 and not copied to the hibernate 7 - @jamesfredley
we need to diff the hibernate 5 functional tests with hibernate 7 to see if any were subsequently changed - @jamesfredley
functional tests in hibernate 7 should use the hibernate 7 bom.
grails-datamapping-core changes need to be looked at closer; I might have merged these the wrong way. - @jamesfredley

I am opening this PR to track the status of Hibernate 7 merge to 8.x.

Some notes from previous meetings on the Hibernate 7 Upgrade:

  • HibernateQuery is the core class, GormDetachedCriteria is now inside of it & this class no longer uses an abstract builder pattern. This does mean we need an active connection to create a query.
  • HibernateCriteriaBuilder was changed to HibernateQuery - purpose was to build query components & run separately
  • Domain Binding was changed to no longer use a monolithic class. Now, "GrailsDomainBinder" is instead a thin wrapper around the root binder implementation.

@testlens-app

This comment has been minimized.

                creation of synthetic ID properties for entities that lack explicit identifier definitions
borinquenkid and others added 3 commits April 9, 2026 09:52
…urn types, cross-property arithmetic

Bug 2: HibernateQueryExecutor.singleResult() now catches both
org.hibernate.NonUniqueResultException and jakarta.persistence.NonUniqueResultException
(H7 throws the JPA variant; the original catch missed it) and returns the
first result instead of propagating.

Bug 4: HqlQueryContext.aggregateTargetClass() now returns precise types per
function: count() → Long, avg() → Double, sum/min/max() → Number.
Previously all aggregates were bound to Long, causing QueryTypeMismatchException
in H7's strict SQM type checking.

Bug 5: Cross-property arithmetic in where-DSL (e.g. pageCount > price * 10)
was silently dropped — the RHS property reference was coerced to a literal.
Fixed via:
- PropertyReference: Groovy wrapper returned by propertyMissing for numeric
  properties; *, +, -, / operators produce a PropertyArithmetic value object
- PropertyArithmetic: value type carrying (propertyName, Operator, operand)
- HibernateDetachedCriteria: H7-only DetachedCriteria subclass that overrides
  propertyMissing to return PropertyReference for numeric properties, and
  newInstance() to preserve the subtype through cloning
- HibernateGormStaticApi: overrides where/whereLazy/whereAny to use
  HibernateDetachedCriteria as the closure delegate
- PredicateGenerator: resolveNumericExpression() detects PropertyArithmetic
  and builds cb.prod/sum/diff/quot(path, operand) instead of a literal

H5 and MongoDB are unaffected — all new types are confined to grails-data-hibernate7.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ve on managed entities

H7 enforces strict collection identity during flush. GORM's addTo* and
save() flow had two failure modes:

1. When an entity is already managed in the current Hibernate session,
   calling session.merge() causes H7 to create a second PersistentCollection
   for the same role+key alongside the one already tracked in the session
   cache -> 'Found two representations of same collection'.

   Fix (HibernateGormInstanceApi.performMerge): check session.contains(target)
   before merging. If the entity is already managed, skip merge entirely;
   dirty-checking and cascade will handle children on flush.

2. When addTo* is called on a managed entity, GormEntity.addTo uses direct
   field access (reflector.getProperty) which bypasses H7's bytecode-enhanced
   interceptor, sees null, and creates a plain ArrayList on the field. H7's
   session cache already tracks a PersistentBag/Set for that role -> two
   representations on the next save.

   Fix (HibernateEntity.addTo): override addTo in the H7 trait; for managed
   entities (id != null), trigger the H7 interceptor via InvokerHelper.getProperty
   to obtain the live PersistentCollection before delegating to
   GormEntity.super.addTo.

   Fix (HibernateEntityTransformation): re-target the concrete addToXxx
   generated methods so their internal addTo call dispatches through
   HibernateEntity.addTo rather than being hard-wired to GormEntity.addTo.

   Fix (HibernateGormInstanceApi.reconcileCollections): detect stale
   PersistentCollections (session != current session) and replace them with
   plain collections before merge, covering any edge cases where the H7
   interceptor path is not taken.

Adds AddToManagedEntitySpec with 4 tests covering:
- addTo on an already-persisted entity
- multiple addTo on a fresh transient entity
- modify child + save twice
- removeFrom + save

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…and proper applicationClass

- Replace executeQuery(plainString) and executeUpdate(plainString) calls
  with the (String, Map) overloads (empty map for parameterless queries).
  HibernateGormStaticApi intentionally rejects plain String in the
  no-arg overload to prevent HQL injection; parameterless static queries
  must use the Map overload.

- Add applicationClass = Application to @Integration so the spec shares
  the same application context and transaction manager as the other specs
  in this module, preventing test-data bleed between specs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Base automatically changed from spring-boot-4 to 8.0.x April 9, 2026 16:36
# Conflicts:
#	NOTICE
#	dependencies.gradle
#	gradle/publish-root-config.gradle
…ibernate7

# Conflicts:
#	.idea/codeStyles/Project.xml
#	NOTICE
#	build-logic/plugins/build.gradle
#	dependencies.gradle
#	gradle/publish-root-config.gradle
import org.apache.tools.ant.taskdefs.condition.Os

ext {
if (file('local.properties').exists()) {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this necessary? What is this being used for?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

local overrides as an option for command line parameters.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should move this to our SharedProperties plugin then so it's consistently applied.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, are you aware that any gradle property can be overridden by environment variable? i.e. 'foo' , set ORG_GRADLE_foo and it will be set that way.

build.gradle Outdated
cacheChangingModulesFor(cacheHours, 'hours')
}
}
pluginManager.withPlugin('jacoco') {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should be configuring this in build-logic

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, that is a leftover from working in the module

@jdaugherty
Copy link
Copy Markdown
Contributor Author

It's my understanding that Walter is working on the spring orm split like we did on the hibernate 5 code. Once that's done, I'll make another pass at the build/license logic then finally review the hibernate code.

  Following the pattern used in Hibernate 5, I have moved the vendored Spring Framework ORM Hibernate 7 integration classes from the core module to a dedicated spring-orm module:
   - Created Module: grails-data-hibernate7-spring-orm (located in grails-data-hibernate7/spring-orm).
   - Moved Classes: All classes in org.grails.orm.hibernate.support.hibernate7 (including HibernateTransactionManager, HibernateTemplate, LocalSessionFactoryBean, etc.) are now in the new module.
   - Updated Dependencies:
       - Added the new module to settings.gradle.
       - Updated grails-data-hibernate7-core, grails-plugin, boot-plugin, and dbmigration to depend on the new spring-orm module.
       - Updated gradle/publish-root-config.gradle to ensure the new module is included in the publishing process.
@borinquenkid
Copy link
Copy Markdown
Member

It's my understanding that Walter is working on the spring orm split like we did on the hibernate 5 code. Once that's done, I'll make another pass at the build/license logic then finally review the hibernate code.

@jamesfredley @jdaugherty PR15567

@jdaugherty
Copy link
Copy Markdown
Contributor Author

jdaugherty commented Apr 10, 2026

It's my understanding that Walter is working on the spring orm split like we did on the hibernate 5 code. Once that's done, I'll make another pass at the build/license logic then finally review the hibernate code.

@jamesfredley @jdaugherty PR15567

Can we merge without using a github PR into this branch so we can review in one spot? @borinquenkid

borinquenkid and others added 3 commits April 9, 2026 22:51
- HibernateDetachedCriteria.isNumericPropertyType: box primitive types
  before the Number.isAssignableFrom check so that domains declaring
  numeric properties as primitives (int/long/double/float/short/byte)
  work correctly in where-DSL arithmetic expressions.
  Method is protected to allow subclass overrides.

- ToManyEntityMultiTenantFilterBinder.bind: add null guard for
  getHibernateAssociatedEntity() return value to prevent
  NullPointerException on partially-resolved associations.

- grails-data-hibernate7/README.md: add grails-data-hibernate7-spring-orm
  to the Module Structure table.

- Tests: new HibernateDetachedCriteriaSpec covering boxed and all 6
  primitive numeric types, non-numeric delegation, and unknown property.
  Added null-associated-entity test to ToManyEntityMultiTenantFilterBinderSpec.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
# Conflicts:
#	grails-data-mongodb/core/src/test/groovy/org/apache/grails/data/mongo/core/GrailsDataMongoTckManager.groovy
#	grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BeforeUpdatePropertyPersistenceSpec.groovy
#	grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/CustomAutoTimestampSpec.groovy
#	grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/NestedCriteriaWithNamedQuerySpec.groovy
#	grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/GormStaticApi.groovy
#	grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/query/NamedCriteriaProxy.groovy
#	grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/NamedQuerySpec.groovy
#	grails-test-suite-uber/src/test/groovy/grails/compiler/DomainClassWithInnerClassUsingStaticCompilationSpec.groovy
@jdaugherty
Copy link
Copy Markdown
Contributor Author

I'm going to reopen this PR to get it fresh view.

@jdaugherty jdaugherty closed this Apr 10, 2026
@jdaugherty jdaugherty mentioned this pull request Apr 10, 2026
@jdaugherty
Copy link
Copy Markdown
Contributor Author

Replaced by #15568

@testlens-app
Copy link
Copy Markdown

testlens-app bot commented Apr 10, 2026

🚨 TestLens detected 169 failed tests 🚨

Here is what you can do:

  1. Inspect the test failures carefully.
  2. If you are convinced that some of the tests are flaky, you can mute them below.
  3. Finally, trigger a rerun by checking the rerun checkbox.

Test Summary

Check Project/Task Test Runs
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test AggregateMethodSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test AssignedIdentifierSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-hibernate7-dbmigration:integrationTest AutoRunWithMultipleDataSourceSpec > runs app with a multiple datasource
CI - Groovy Joint Validation Build / build_grails :grails-data-hibernate7-dbmigration:integrationTest AutoRunWithSingleDataSourceSpec > runs app with a single datasource
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test AutowireServicesSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test BasicArraySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test BasicCollectionTypeSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test BasicCollectionsSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test BatchUpdateDeleteSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test BeforeInsertUpdateSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test BeforeUpdatePropertyPersistenceSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test BigDecimalSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test BrokenManyToManyAssociationSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test CascadeDeleteOneToOneSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test CascadeDeleteSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test CircularBidirectionalOneToManySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test CircularEmbeddedListSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test CircularOneToManySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test ClearCollectionSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test ConstraintsSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test CriteriaBuilderSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test CrossLayerMultiDataSourceSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test CrossLayerMultiTenantMultiDataSourceSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test CrudOperationsSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test CustomCollectionAndAttributeMappingSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test CustomIdProxySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test CustomMongoEventListenerSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test CustomTypeMarshallingSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DataServiceConnectionRoutingSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DataServiceMultiTenantConnectionRoutingSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DbRefWithEmbeddedSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-hibernate7-dbmigration:integrationTest DbUpdateCommandSpec > test the transaction behaviour in the changeSet with grailsChange and GORM
CI - Groovy Joint Validation Build / build_grails :grails-data-hibernate7-dbmigration:test DbmGenerateGormChangelogCommandSpec > writes Change Log to copy the current state of the database to STDOUT
CI - Groovy Joint Validation Build / build_grails :grails-data-hibernate7-dbmigration:test DbmGenerateGormChangelogCommandSpec > writes Change Log to copy the current state of the database to a file given as arguments
CI - Groovy Joint Validation Build / build_grails :grails-data-hibernate7-dbmigration:test DbmGormDiffCommandSpec > diffs GORM classes against a database and generates a changelog to STDOUT
CI - Groovy Joint Validation Build / build_grails :grails-data-hibernate7-dbmigration:test DbmGormDiffCommandSpec > diffs GORM classes against a database and generates a changelog to a file given as arguments
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DefaultSortOrderSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DeleteAllSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DetachedCriteriaSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DirtyCheckEmbeddedCollectionSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DirtyCheckUpdateSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DirtyCheckingAfterListenerSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DirtyCheckingSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DisableAutotimeStampSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DisableVersionSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DisjunctionQuerySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DistinctPropertySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DocumentMappingSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DomainEventsSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DomainMultiDataSourceSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test DomainMultiTenantMultiDataSourceSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedAssociationSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedBiDirectionalSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedCollectionAndInheritanceSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedCollectionWithIdSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedCollectionWithOneToOneSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedHasManyWithBeforeUpdateSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedListWithCustomTypeSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedMapSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedSetAssignedIdSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedSimpleObjectSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedStringListInsideEmbeddedCollectionSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedUnsetSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedWhereClauseSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedWithCustomFieldMappingSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedWithIdSpecifiedSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedWithNonEmbeddedAssociationsSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedWithNonEmbeddedCollectionsSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EmbeddedWithinEmbeddedAssociationSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EnumCollectionSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EnumSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EnumTypeSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test EventsWithAbstractInheritanceSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test FindByExampleSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test FindByMethodSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test FindNativeSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test FindOrCreateWhereSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test FindOrCreateWhereSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test FindOrSaveWhereSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test FindWhereSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test FirstAndLastMethodSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test GPMongoDB295Spec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test GeoJSONTypePersistenceSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test GeospacialQuerySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test GetAllSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test GetAllWithStringIdSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test GormEnhancerSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test GormValidateableSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test GrailsDataMongoTckManagerSpec > cleanup closes the primary datastore so repeated setup stays healthy
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test GreaterThanAndLessThanCriteriaSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test GroovyProxySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test HasOneSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test HintQueryArgumentSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test InListQuerySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test IndexAttributesAndCompoundKeySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test IndexWithInheritanceSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test InheritanceQueryingSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test InheritanceSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test InheritanceWithSingleEndedAssociationSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test InnerEnumSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test IsNullSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test JakartaValidationSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test LastUpdatedSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test LikeQuerySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test ListOneToManyOrderingSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test ListOrderBySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test MapOfDomainsSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test MarkDirtyFalseSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test MongoCascadeSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test MongoDynamicPropertyOnEmbeddedSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test MongoEntityConfigSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test MongoGormEnhancerSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test MongoResultsListIndexSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test MongoTypesSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test NegateInListSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test NegationEnumSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test NegationSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test NotInListSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test NullValueEqualSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test NullifyPropertySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test NullsAreNotStoredSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test ObjectIdPersistenceSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test ObjectIdPropertySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test OneToManySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test OneToManyWithInheritanceSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test OneToOneIntegritySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test OneToOneNoReferenceSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test OneToOneSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test OptimisticLockingSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test OptimisticLockingWithExceptionSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test OrderBySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test OrderWithPaginationSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test PagedResultSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test PersistenceEventListenerSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test PersistenceEventListenerSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test ProjectionsSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test PropertyComparisonQuerySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test ProxyInitializationSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test ProxyLoadingSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test QueriesWithIdenticallyNamedPartsSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test QueryAfterPropertyChangeSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test QueryByAssociationSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test QueryByNullSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test QueryEventsSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test RLikeSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test RangeQuerySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test ReadConcernArgumentSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test ReadManyObjectsSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test ResultsWithGroovyCollectionMethodsSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test SaveAllSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test SchemalessSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test SessionCachingSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test SessionCreationEventSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test SessionPropertiesSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test SetRetrievalSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test SimpleHasManySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test SizeQuerySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test StatelessSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test SwitchDatabaseAtRuntimeSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test TestSearchSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test TransientPropertySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test UpdateWithProxyPresentSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test ValidationSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test WhereLazySpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test WhereQueryConnectionRoutingSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test WhereQueryInCriteriaSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test WithTransactionSpec
CI - Groovy Joint Validation Build / build_grails :grails-data-mongodb-core:test WriteConcernSpec

🏷️ Commit: 732d30f
▶️ Tests: 11391 executed
🟡 Checks: 48/64 completed

Test Failures (first 5 of 183)

AggregateMethodSpec (:grails-data-mongodb-core:test in CI - Groovy Joint Validation Build / build_grails)
java.lang.IllegalStateException: Mapped port can only be obtained after the container is started
	at org.testcontainers.shaded.com.google.common.base.Preconditions.checkState(Preconditions.java:513)
	at org.testcontainers.containers.ContainerState.getMappedPort(ContainerState.java:161)
	at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.setupSpec(GrailsDataMongoTckManager.groovy:81)
	at org.apache.grails.data.testing.tck.base.GrailsDataTckSpec.setupSpec(GrailsDataTckSpec.groovy:40)
AssignedIdentifierSpec (:grails-data-mongodb-core:test in CI - Groovy Joint Validation Build / build_grails)
java.lang.IllegalStateException: Mapped port can only be obtained after the container is started
	at org.testcontainers.shaded.com.google.common.base.Preconditions.checkState(Preconditions.java:513)
	at org.testcontainers.containers.ContainerState.getMappedPort(ContainerState.java:161)
	at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.setupSpec(GrailsDataMongoTckManager.groovy:81)
	at org.apache.grails.data.testing.tck.base.GrailsDataTckSpec.setupSpec(GrailsDataTckSpec.groovy:40)
AutoRunWithMultipleDataSourceSpec > runs app with a multiple datasource (:grails-data-hibernate7-dbmigration:integrationTest in CI - Groovy Joint Validation Build / build_grails)
java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@41bb1f09 testClass = org.grails.plugins.databasemigration.AutoRunWithMultipleDataSourceSpec, locations = [], classes = [databasemigration.Application], contextInitializerClasses = [], activeProfiles = ["multiple-datasource"], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true", "server.port=0"], contextCustomizers = [org.spockframework.spring.mock.SpockContextCustomizer@0, org.springframework.boot.web.server.context.SpringBootTestRandomPortContextCustomizer@1e1e9ef3, org.springframework.boot.test.context.PropertyMappingContextCustomizer@0, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@3c74aa0d, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@7a81065e, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@7b111425], resourceBasePath = "src/main/webapp", contextLoader = grails.boot.test.GrailsApplicationContextLoader, parent = null]
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.lambda$loadContext$0(DefaultCacheAwareContextLoaderDelegate.java:195)
	at org.springframework.test.context.cache.DefaultContextCache.put(DefaultContextCache.java:214)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:160)
	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:128)
	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:156)
	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:111)
	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260)
	at org.spockframework.spring.SpringTestContextManager.prepareTestInstance(SpringTestContextManager.java:56)
	at org.spockframework.spring.SpringInterceptor.interceptInitializerMethod(SpringInterceptor.java:46)
	at org.spockframework.runtime.extension.AbstractMethodInterceptor.intercept(AbstractMethodInterceptor.java:24)
	at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:101)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Caused by: java.lang.IllegalStateException: java.lang.IllegalStateException: Could not initialize Logback logging from classpath:logback-test.xml
	at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:352)
	at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:302)
	at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:248)
	at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:225)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:180)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:173)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:151)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:133)
	at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:137)
	at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82)
	at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$0(SpringApplicationRunListeners.java:66)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:123)
	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117)
	at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:65)
	at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:356)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:100)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:394)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:383)
	at databasemigration.Application.main(Application.groovy:32)
	at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:281)
	at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$1(SpringBootContextLoader.java:148)
	at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.lambda$runMain$0(SpringBootContextLoader.java:593)
	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58)
	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46)
	at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1465)
	at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:600)
	at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.runMain(SpringBootContextLoader.java:592)
	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:143)
	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:114)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:247)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.lambda$loadContext$0(DefaultCacheAwareContextLoaderDelegate.java:167)
	... 13 more
Caused by: java.lang.IllegalStateException: Could not initialize Logback logging from classpath:logback-test.xml
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.lambda$loadConfiguration$0(LogbackLoggingSystem.java:270)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.withLoggingSuppressed(LogbackLoggingSystem.java:491)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:257)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.reinitialize(LogbackLoggingSystem.java:351)
	at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:79)
	at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:65)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:197)
	at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:337)
	... 45 more
Caused by: ch.qos.logback.core.joran.spi.JoranException: Problem parsing XML document. See previously reported errors.
	at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:99)
	at ch.qos.logback.core.joran.GenericXMLConfigurator.populateSaxEventRecorder(GenericXMLConfigurator.java:212)
	at ch.qos.logback.core.joran.GenericXMLConfigurator.doConfigure(GenericXMLConfigurator.java:183)
	at ch.qos.logback.core.joran.GenericXMLConfigurator.doConfigure(GenericXMLConfigurator.java:139)
	at ch.qos.logback.core.joran.GenericXMLConfigurator.doConfigure(GenericXMLConfigurator.java:76)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.configureByResourceUrl(LogbackLoggingSystem.java:305)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.lambda$loadConfiguration$0(LogbackLoggingSystem.java:267)
	... 52 more
Caused by: org.xml.sax.SAXParseException; systemId: file:/home/runner/work/grails-core/grails-core/grails-data-hibernate7/dbmigration/build/resources/integrationTest/logback-test.xml; lineNumber: 1; columnNumber: 1; Premature end of file.
	at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1251)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:637)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:326)
	at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:92)
	... 58 more
AutoRunWithMultipleDataSourceSpec > runs app with a multiple datasource (:grails-data-hibernate7-dbmigration:integrationTest in CI - Groovy Joint Validation Build / build_grails)
java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@14874a5d testClass = org.grails.plugins.databasemigration.AutoRunWithMultipleDataSourceSpec, locations = [], classes = [databasemigration.Application], contextInitializerClasses = [], activeProfiles = ["multiple-datasource"], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true", "server.port=0"], contextCustomizers = [org.spockframework.spring.mock.SpockContextCustomizer@0, org.springframework.boot.web.server.context.SpringBootTestRandomPortContextCustomizer@3b27b497, org.springframework.boot.test.context.PropertyMappingContextCustomizer@0, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@ae202c6, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@7e5843db, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@a2a1f72f], resourceBasePath = "src/main/webapp", contextLoader = grails.boot.test.GrailsApplicationContextLoader, parent = null]
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.lambda$loadContext$0(DefaultCacheAwareContextLoaderDelegate.java:195)
	at org.springframework.test.context.cache.DefaultContextCache.put(DefaultContextCache.java:214)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:160)
	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:128)
	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:156)
	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:111)
	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260)
	at org.spockframework.spring.SpringTestContextManager.prepareTestInstance(SpringTestContextManager.java:56)
	at org.spockframework.spring.SpringInterceptor.interceptInitializerMethod(SpringInterceptor.java:46)
	at org.spockframework.runtime.extension.AbstractMethodInterceptor.intercept(AbstractMethodInterceptor.java:24)
	at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:101)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Caused by: java.lang.IllegalStateException: java.lang.IllegalStateException: Could not initialize Logback logging from classpath:logback-test.xml
	at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:352)
	at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:302)
	at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:248)
	at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:225)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:180)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:173)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:151)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:133)
	at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:137)
	at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82)
	at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$0(SpringApplicationRunListeners.java:66)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:123)
	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117)
	at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:65)
	at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:356)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:100)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:394)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:383)
	at databasemigration.Application.main(Application.groovy:32)
	at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:281)
	at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$1(SpringBootContextLoader.java:148)
	at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.lambda$runMain$0(SpringBootContextLoader.java:593)
	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58)
	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46)
	at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1465)
	at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:600)
	at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.runMain(SpringBootContextLoader.java:592)
	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:143)
	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:114)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:247)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.lambda$loadContext$0(DefaultCacheAwareContextLoaderDelegate.java:167)
	... 13 more
Caused by: java.lang.IllegalStateException: Could not initialize Logback logging from classpath:logback-test.xml
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.lambda$loadConfiguration$0(LogbackLoggingSystem.java:270)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.withLoggingSuppressed(LogbackLoggingSystem.java:491)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:257)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.reinitialize(LogbackLoggingSystem.java:351)
	at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:79)
	at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:65)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:197)
	at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:337)
	... 45 more
Caused by: ch.qos.logback.core.joran.spi.JoranException: Problem parsing XML document. See previously reported errors.
	at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:99)
	at ch.qos.logback.core.joran.GenericXMLConfigurator.populateSaxEventRecorder(GenericXMLConfigurator.java:212)
	at ch.qos.logback.core.joran.GenericXMLConfigurator.doConfigure(GenericXMLConfigurator.java:183)
	at ch.qos.logback.core.joran.GenericXMLConfigurator.doConfigure(GenericXMLConfigurator.java:139)
	at ch.qos.logback.core.joran.GenericXMLConfigurator.doConfigure(GenericXMLConfigurator.java:76)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.configureByResourceUrl(LogbackLoggingSystem.java:305)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.lambda$loadConfiguration$0(LogbackLoggingSystem.java:267)
	... 52 more
Caused by: org.xml.sax.SAXParseException; systemId: file:/home/runner/work/grails-core/grails-core/grails-data-hibernate7/dbmigration/build/resources/integrationTest/logback-test.xml; lineNumber: 1; columnNumber: 1; Premature end of file.
	at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1251)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:637)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:326)
	at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:92)
	... 58 more
AutoRunWithMultipleDataSourceSpec > runs app with a multiple datasource (:grails-data-hibernate7-dbmigration:integrationTest in CI - Groovy Joint Validation Build / build_grails)
java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@12365bd8 testClass = org.grails.plugins.databasemigration.AutoRunWithMultipleDataSourceSpec, locations = [], classes = [databasemigration.Application], contextInitializerClasses = [], activeProfiles = ["multiple-datasource"], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true", "server.port=0"], contextCustomizers = [org.spockframework.spring.mock.SpockContextCustomizer@0, org.springframework.boot.web.server.context.SpringBootTestRandomPortContextCustomizer@3c74aa0d, org.springframework.boot.test.context.PropertyMappingContextCustomizer@0, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@6ada9c0c, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@188ac8a3, org.springframework.test.context.support.DynamicPropertiesContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@76484a3c], resourceBasePath = "src/main/webapp", contextLoader = grails.boot.test.GrailsApplicationContextLoader, parent = null]
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.lambda$loadContext$0(DefaultCacheAwareContextLoaderDelegate.java:195)
	at org.springframework.test.context.cache.DefaultContextCache.put(DefaultContextCache.java:214)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:160)
	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:128)
	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:156)
	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:111)
	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260)
	at org.spockframework.spring.SpringTestContextManager.prepareTestInstance(SpringTestContextManager.java:56)
	at org.spockframework.spring.SpringInterceptor.interceptInitializerMethod(SpringInterceptor.java:46)
	at org.spockframework.runtime.extension.AbstractMethodInterceptor.intercept(AbstractMethodInterceptor.java:24)
	at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:101)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:156)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Caused by: java.lang.IllegalStateException: java.lang.IllegalStateException: Could not initialize Logback logging from classpath:logback-test.xml
	at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:352)
	at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:302)
	at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:248)
	at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:225)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:180)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:173)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:151)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:133)
	at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:137)
	at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82)
	at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$0(SpringApplicationRunListeners.java:66)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:123)
	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117)
	at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:65)
	at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:356)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:100)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:394)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:383)
	at databasemigration.Application.main(Application.groovy:32)
	at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:281)
	at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$1(SpringBootContextLoader.java:148)
	at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.lambda$runMain$0(SpringBootContextLoader.java:593)
	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58)
	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46)
	at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1465)
	at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:600)
	at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.runMain(SpringBootContextLoader.java:592)
	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:143)
	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:114)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:247)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.lambda$loadContext$0(DefaultCacheAwareContextLoaderDelegate.java:167)
	... 13 more
Caused by: java.lang.IllegalStateException: Could not initialize Logback logging from classpath:logback-test.xml
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.lambda$loadConfiguration$0(LogbackLoggingSystem.java:270)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.withLoggingSuppressed(LogbackLoggingSystem.java:491)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:257)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.reinitialize(LogbackLoggingSystem.java:351)
	at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:79)
	at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:65)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:197)
	at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:337)
	... 45 more
Caused by: ch.qos.logback.core.joran.spi.JoranException: Problem parsing XML document. See previously reported errors.
	at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:99)
	at ch.qos.logback.core.joran.GenericXMLConfigurator.populateSaxEventRecorder(GenericXMLConfigurator.java:212)
	at ch.qos.logback.core.joran.GenericXMLConfigurator.doConfigure(GenericXMLConfigurator.java:183)
	at ch.qos.logback.core.joran.GenericXMLConfigurator.doConfigure(GenericXMLConfigurator.java:139)
	at ch.qos.logback.core.joran.GenericXMLConfigurator.doConfigure(GenericXMLConfigurator.java:76)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.configureByResourceUrl(LogbackLoggingSystem.java:305)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.lambda$loadConfiguration$0(LogbackLoggingSystem.java:267)
	... 52 more
Caused by: org.xml.sax.SAXParseException; systemId: file:/home/runner/work/grails-core/grails-core/grails-data-hibernate7/dbmigration/build/resources/integrationTest/logback-test.xml; lineNumber: 1; columnNumber: 1; Premature end of file.
	at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1251)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:637)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:326)
	at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:92)
	... 58 more

Muted Tests

Note

Checks are currently running using the configuration below.

Select tests to mute in this pull request:

🔲 AggregateMethodSpec
🔲 AssignedIdentifierSpec
🔲 AutoRunWithMultipleDataSourceSpec > runs app with a multiple datasource
🔲 AutoRunWithSingleDataSourceSpec > runs app with a single datasource
🔲 AutowireServicesSpec
🔲 BasicArraySpec
🔲 BasicCollectionTypeSpec
🔲 BasicCollectionsSpec
🔲 BatchUpdateDeleteSpec
🔲 BeforeInsertUpdateSpec
🔲 BeforeUpdatePropertyPersistenceSpec
🔲 BigDecimalSpec
🔲 BrokenManyToManyAssociationSpec
🔲 BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec
🔲 CascadeDeleteOneToOneSpec
🔲 CascadeDeleteSpec
🔲 CircularBidirectionalOneToManySpec
🔲 CircularEmbeddedListSpec
🔲 CircularOneToManySpec
🔲 ClearCollectionSpec
🔲 ConstraintsSpec
🔲 CriteriaBuilderSpec
🔲 CrossLayerMultiDataSourceSpec
🔲 CrossLayerMultiTenantMultiDataSourceSpec
🔲 CrudOperationsSpec
🔲 CustomCollectionAndAttributeMappingSpec
🔲 CustomIdProxySpec
🔲 CustomMongoEventListenerSpec
🔲 CustomTypeMarshallingSpec
🔲 DataServiceConnectionRoutingSpec
🔲 DataServiceMultiTenantConnectionRoutingSpec
🔲 DbRefWithEmbeddedSpec
🔲 DbUpdateCommandSpec > test the transaction behaviour in the changeSet with grailsChange and GORM
🔲 DbmGenerateGormChangelogCommandSpec > writes Change Log to copy the current state of the database to STDOUT
🔲 DbmGenerateGormChangelogCommandSpec > writes Change Log to copy the current state of the database to a file given as arguments
🔲 DbmGormDiffCommandSpec > diffs GORM classes against a database and generates a changelog to STDOUT
🔲 DbmGormDiffCommandSpec > diffs GORM classes against a database and generates a changelog to a file given as arguments
🔲 DefaultSortOrderSpec
🔲 DeleteAllSpec
🔲 DetachedCriteriaSpec
🔲 DirtyCheckEmbeddedCollectionSpec
🔲 DirtyCheckUpdateSpec
🔲 DirtyCheckingAfterListenerSpec
🔲 DirtyCheckingSpec
🔲 DisableAutotimeStampSpec
🔲 DisableVersionSpec
🔲 DisjunctionQuerySpec
🔲 DistinctPropertySpec
🔲 DocumentMappingSpec
🔲 DomainEventsSpec
🔲 DomainMultiDataSourceSpec
🔲 DomainMultiTenantMultiDataSourceSpec
🔲 EmbeddedAssociationSpec
🔲 EmbeddedBiDirectionalSpec
🔲 EmbeddedCollectionAndInheritanceSpec
🔲 EmbeddedCollectionWithIdSpec
🔲 EmbeddedCollectionWithOneToOneSpec
🔲 EmbeddedHasManyWithBeforeUpdateSpec
🔲 EmbeddedListWithCustomTypeSpec
🔲 EmbeddedMapSpec
🔲 EmbeddedSetAssignedIdSpec
🔲 EmbeddedSimpleObjectSpec
🔲 EmbeddedStringListInsideEmbeddedCollectionSpec
🔲 EmbeddedUnsetSpec
🔲 EmbeddedWhereClauseSpec
🔲 EmbeddedWithCustomFieldMappingSpec
🔲 EmbeddedWithIdSpecifiedSpec
🔲 EmbeddedWithNonEmbeddedAssociationsSpec
🔲 EmbeddedWithNonEmbeddedCollectionsSpec
🔲 EmbeddedWithinEmbeddedAssociationSpec
🔲 EnumCollectionSpec
🔲 EnumSpec
🔲 EnumTypeSpec
🔲 EventsWithAbstractInheritanceSpec
🔲 FindByExampleSpec
🔲 FindByMethodSpec
🔲 FindNativeSpec
🔲 FindOrCreateWhereSpec
🔲 FindOrCreateWhereSpec
🔲 FindOrSaveWhereSpec
🔲 FindWhereSpec
🔲 FirstAndLastMethodSpec
🔲 GPMongoDB295Spec
🔲 GeoJSONTypePersistenceSpec
🔲 GeospacialQuerySpec
🔲 GetAllSpec
🔲 GetAllWithStringIdSpec
🔲 GormEnhancerSpec
🔲 GormValidateableSpec
🔲 GrailsDataMongoTckManagerSpec > cleanup closes the primary datastore so repeated setup stays healthy
🔲 GreaterThanAndLessThanCriteriaSpec
🔲 GroovyProxySpec
🔲 HasOneSpec
🔲 HintQueryArgumentSpec
🔲 InListQuerySpec
🔲 IndexAttributesAndCompoundKeySpec
🔲 IndexWithInheritanceSpec
🔲 InheritanceQueryingSpec
🔲 InheritanceSpec
🔲 InheritanceWithSingleEndedAssociationSpec
🔲 InnerEnumSpec
🔲 IsNullSpec
🔲 JakartaValidationSpec
🔲 LastUpdatedSpec
🔲 LikeQuerySpec
🔲 ListOneToManyOrderingSpec
🔲 ListOrderBySpec
🔲 MapOfDomainsSpec
🔲 MarkDirtyFalseSpec
🔲 MongoCascadeSpec
🔲 MongoDynamicPropertyOnEmbeddedSpec
🔲 MongoEntityConfigSpec
🔲 MongoGormEnhancerSpec
🔲 MongoResultsListIndexSpec
🔲 MongoTypesSpec
🔲 NegateInListSpec
🔲 NegationEnumSpec
🔲 NegationSpec
🔲 NotInListSpec
🔲 NullValueEqualSpec
🔲 NullifyPropertySpec
🔲 NullsAreNotStoredSpec
🔲 ObjectIdPersistenceSpec
🔲 ObjectIdPropertySpec
🔲 OneToManySpec
🔲 OneToManyWithInheritanceSpec
🔲 OneToOneIntegritySpec
🔲 OneToOneNoReferenceSpec
🔲 OneToOneSpec
🔲 OptimisticLockingSpec
🔲 OptimisticLockingWithExceptionSpec
🔲 OrderBySpec
🔲 OrderWithPaginationSpec
🔲 PagedResultSpec
🔲 PersistenceEventListenerSpec
🔲 PersistenceEventListenerSpec
🔲 ProjectionsSpec
🔲 PropertyComparisonQuerySpec
🔲 ProxyInitializationSpec
🔲 ProxyLoadingSpec
🔲 QueriesWithIdenticallyNamedPartsSpec
🔲 QueryAfterPropertyChangeSpec
🔲 QueryByAssociationSpec
🔲 QueryByNullSpec
🔲 QueryEventsSpec
🔲 RLikeSpec
🔲 RangeQuerySpec
🔲 ReadConcernArgumentSpec
🔲 ReadManyObjectsSpec
🔲 ResultsWithGroovyCollectionMethodsSpec
🔲 SaveAllSpec
🔲 SchemalessSpec
🔲 SessionCachingSpec
🔲 SessionCreationEventSpec
🔲 SessionPropertiesSpec
🔲 SetRetrievalSpec
🔲 SimpleHasManySpec
🔲 SizeQuerySpec
🔲 StatelessSpec
🔲 SwitchDatabaseAtRuntimeSpec
🔲 TestSearchSpec
🔲 TransientPropertySpec
🔲 UpdateWithProxyPresentSpec
🔲 ValidationSpec
🔲 WhereLazySpec
🔲 WhereQueryConnectionRoutingSpec
🔲 WhereQueryInCriteriaSpec
🔲 WithTransactionSpec
🔲 WriteConcernSpec

Reuse successful test results:

🔲 ♻️ Only rerun the tests that failed or were muted before

Click the checkbox to trigger a rerun:

🔲 Rerun jobs


Learn more about TestLens at testlens.app.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants